{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Preprocess read count\n",
    "\n",
    "This is only for our data. For other datasets see ```A01_get_scrnaseq_tpm.ipynb```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:10:59.882812Z",
     "start_time": "2020-10-13T13:10:59.159984Z"
    }
   },
   "outputs": [],
   "source": [
    "import os, pickle, re, glob, time\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "np.set_printoptions(precision=2)\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.patches as patches\n",
    "import seaborn as sns\n",
    "from scipy import stats\n",
    "from collections import Counter\n",
    "\n",
    "sns.set_style('ticks')\n",
    "pd.set_option('precision', 2)\n",
    "\n",
    "%matplotlib inline\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Cell line info"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:00.338646Z",
     "start_time": "2020-10-13T13:11:00.313409Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1247\n"
     ]
    }
   ],
   "source": [
    "cell_info_df = pd.read_csv('../data/HN_patient_specific/cellInfo.csv', index_col=0)\n",
    "cell_info_df.loc[:, 'batch'] = [c[0:3] for c in cell_info_df.index]\n",
    "\n",
    "cell_list = sorted(cell_info_df.index)\n",
    "print (len(cell_list))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:00.934992Z",
     "start_time": "2020-10-13T13:11:00.923059Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['RHO341', 'RHO349', 'RHO533', 'RHO566', 'RHO606', 'RHO614']"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# old files [TO BE REMOVED]\n",
    "cell_info_df2 = pd.read_csv('../data/HN_patient_specific/old_norm_cluster_results/cellInfo2.csv', index_col=0)\n",
    "old_sel_cell_list = cell_info_df2.index\n",
    "\n",
    "old_removed_cell_list = [c for c in cell_list if c not in old_sel_cell_list]\n",
    "old_removed_cell_list"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Count\n",
    "\n",
    "Only RHO* we have everything. For previous batches, we only have count, tpm, fpkm."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:10.680676Z",
     "start_time": "2020-10-13T13:11:02.408973Z"
    }
   },
   "outputs": [],
   "source": [
    "count_df = pd.read_csv('../data/HN_patient_specific/star_rsem_output/HN120-182/countdata.csv', index_col=0)\n",
    "count_df = count_df.set_index('mat57[, 1]')\n",
    "count_df.index.name = ''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:10.718425Z",
     "start_time": "2020-10-13T13:11:10.682852Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(54999, 1247)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>RHH2176</th>\n",
       "      <th>RHH2177</th>\n",
       "      <th>RHH2178</th>\n",
       "      <th>RHH2179</th>\n",
       "      <th>RHH2180</th>\n",
       "      <th>RHH2181</th>\n",
       "      <th>RHH2182</th>\n",
       "      <th>RHH2183</th>\n",
       "      <th>RHH2184</th>\n",
       "      <th>RHH2185</th>\n",
       "      <th>...</th>\n",
       "      <th>RHO708</th>\n",
       "      <th>RHO709</th>\n",
       "      <th>RHO710</th>\n",
       "      <th>RHO711</th>\n",
       "      <th>RHO712</th>\n",
       "      <th>RHO713</th>\n",
       "      <th>RHO714</th>\n",
       "      <th>RHO715</th>\n",
       "      <th>RHO716</th>\n",
       "      <th>RHO717</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>TSPAN6</th>\n",
       "      <td>2.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>132.0</td>\n",
       "      <td>58.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>115.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>27.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>295.0</td>\n",
       "      <td>116.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>121.0</td>\n",
       "      <td>38.0</td>\n",
       "      <td>116.0</td>\n",
       "      <td>234.0</td>\n",
       "      <td>227.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>71.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TNMD</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DPM1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>341.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>23.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>189.0</td>\n",
       "      <td>291.0</td>\n",
       "      <td>121.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>26.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SCYL3</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>36.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>25.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C1orf112</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>38.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 1247 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          RHH2176  RHH2177  RHH2178  RHH2179  RHH2180  RHH2181  RHH2182  \\\n",
       "                                                                          \n",
       "TSPAN6        2.0      7.0    132.0     58.0     11.0    115.0      2.0   \n",
       "TNMD          0.0      0.0      0.0      0.0      0.0      0.0      0.0   \n",
       "DPM1          0.0      1.0     50.0     24.0     24.0     40.0      3.0   \n",
       "SCYL3         0.0      0.0     36.0      4.0      0.0      0.0      0.0   \n",
       "C1orf112      0.0      0.0      0.0      4.0      2.0      0.0      9.0   \n",
       "\n",
       "          RHH2183  RHH2184  RHH2185  ...  RHO708  RHO709  RHO710  RHO711  \\\n",
       "                                     ...                                   \n",
       "TSPAN6       13.0     27.0      1.0  ...   295.0   116.0     0.0   121.0   \n",
       "TNMD          0.0      0.0      0.0  ...     0.0     0.0     0.0     0.0   \n",
       "DPM1          3.0      4.0      1.0  ...   341.0    11.0     0.0    23.0   \n",
       "SCYL3         0.0      0.0      0.0  ...    25.0     4.0     0.0    20.0   \n",
       "C1orf112      0.0      0.0      0.0  ...    10.0     0.0     0.0     1.0   \n",
       "\n",
       "          RHO712  RHO713  RHO714  RHO715  RHO716  RHO717  \n",
       "                                                          \n",
       "TSPAN6      38.0   116.0   234.0   227.0    17.0    71.0  \n",
       "TNMD         0.0     0.0     0.0     0.0     0.0     0.0  \n",
       "DPM1        16.0   189.0   291.0   121.0    20.0    26.0  \n",
       "SCYL3        0.0     0.0     0.0     2.0     0.0     6.0  \n",
       "C1orf112     0.0     3.0     1.0    38.0     5.0     0.0  \n",
       "\n",
       "[5 rows x 1247 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print (count_df.shape)\n",
    "count_df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### There are many unmapped reads in few samples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:11.098611Z",
     "start_time": "2020-10-13T13:11:10.720508Z"
    },
    "code_folding": []
   },
   "outputs": [],
   "source": [
    "sample_output_df1 = pd.read_csv('../data/HN_patient_specific/star_rsem_output/RHO238/star/RHO238_hg19_ReadsPerGene.out.tab.desc', sep='\\t', index_col=0)\n",
    "\n",
    "sample_output_df2 = pd.read_csv('../data/HN_patient_specific/star_rsem_output/RHO238/rsem/RHO238_hg19_RSEM.genes.results', sep='\\t', index_col=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:13.316100Z",
     "start_time": "2020-10-13T13:11:13.313648Z"
    }
   },
   "outputs": [],
   "source": [
    "# sample_output_df1.loc[sample_output_df1.index.str.contains('ENSG')].sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:13.536402Z",
     "start_time": "2020-10-13T13:11:13.534069Z"
    }
   },
   "outputs": [],
   "source": [
    "# sample_output_df1.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### TPM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:20.998123Z",
     "start_time": "2020-10-13T13:11:16.316705Z"
    }
   },
   "outputs": [],
   "source": [
    "tpm_df = pd.read_csv('../data/HN_patient_specific/star_rsem_output/HN120-182/tpm.csv', index_col=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:21.022715Z",
     "start_time": "2020-10-13T13:11:21.000090Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(57268, 768)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>RHH2176</th>\n",
       "      <th>RHH2177</th>\n",
       "      <th>RHH2178</th>\n",
       "      <th>RHH2179</th>\n",
       "      <th>RHH2180</th>\n",
       "      <th>RHH2181</th>\n",
       "      <th>RHH2182</th>\n",
       "      <th>RHH2183</th>\n",
       "      <th>RHH2184</th>\n",
       "      <th>RHH2185</th>\n",
       "      <th>...</th>\n",
       "      <th>RHC6644</th>\n",
       "      <th>RHC6645</th>\n",
       "      <th>RHC6646</th>\n",
       "      <th>RHC6647</th>\n",
       "      <th>RHC6648</th>\n",
       "      <th>RHC6649</th>\n",
       "      <th>RHC6650</th>\n",
       "      <th>RHC6651</th>\n",
       "      <th>RHC6652</th>\n",
       "      <th>RHC6653</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>49.14</td>\n",
       "      <td>48.85</td>\n",
       "      <td>131.23</td>\n",
       "      <td>178.24</td>\n",
       "      <td>23.44</td>\n",
       "      <td>153.69</td>\n",
       "      <td>9.38</td>\n",
       "      <td>96.24</td>\n",
       "      <td>81.05</td>\n",
       "      <td>10.09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99</td>\n",
       "      <td>76.64</td>\n",
       "      <td>22.62</td>\n",
       "      <td>67.69</td>\n",
       "      <td>28.06</td>\n",
       "      <td>137.69</td>\n",
       "      <td>42.52</td>\n",
       "      <td>41.95</td>\n",
       "      <td>108.81</td>\n",
       "      <td>265.52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.00</td>\n",
       "      <td>25.66</td>\n",
       "      <td>123.04</td>\n",
       "      <td>159.22</td>\n",
       "      <td>110.39</td>\n",
       "      <td>115.40</td>\n",
       "      <td>51.75</td>\n",
       "      <td>47.94</td>\n",
       "      <td>25.92</td>\n",
       "      <td>12.69</td>\n",
       "      <td>...</td>\n",
       "      <td>0.73</td>\n",
       "      <td>76.17</td>\n",
       "      <td>83.42</td>\n",
       "      <td>90.52</td>\n",
       "      <td>164.33</td>\n",
       "      <td>13.15</td>\n",
       "      <td>138.98</td>\n",
       "      <td>24.68</td>\n",
       "      <td>117.45</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>26.77</td>\n",
       "      <td>4.13</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>4.57</td>\n",
       "      <td>0.67</td>\n",
       "      <td>0.32</td>\n",
       "      <td>1.27</td>\n",
       "      <td>4.79</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>29.61</td>\n",
       "      <td>2.47</td>\n",
       "      <td>0.00</td>\n",
       "      <td>24.26</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>2.41</td>\n",
       "      <td>13.14</td>\n",
       "      <td>29.39</td>\n",
       "      <td>47.68</td>\n",
       "      <td>0.00</td>\n",
       "      <td>61.45</td>\n",
       "      <td>3.65</td>\n",
       "      <td>10.68</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 768 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   RHH2176  RHH2177  RHH2178  RHH2179  RHH2180  RHH2181  RHH2182  RHH2183  \\\n",
       "1    49.14    48.85   131.23   178.24    23.44   153.69     9.38    96.24   \n",
       "2     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00   \n",
       "3     0.00    25.66   123.04   159.22   110.39   115.40    51.75    47.94   \n",
       "4     0.00     0.00    26.77     4.13     0.00     0.00     0.00     0.00   \n",
       "5     0.00     0.00     0.00    29.61     2.47     0.00    24.26     0.00   \n",
       "\n",
       "   RHH2184  RHH2185  ...  RHC6644  RHC6645  RHC6646  RHC6647  RHC6648  \\\n",
       "1    81.05    10.09  ...     0.99    76.64    22.62    67.69    28.06   \n",
       "2     0.00     0.00  ...     0.00     0.00     0.00     0.00     0.00   \n",
       "3    25.92    12.69  ...     0.73    76.17    83.42    90.52   164.33   \n",
       "4     0.00     0.00  ...     0.00     0.00     0.00     0.00     4.57   \n",
       "5     0.00     0.00  ...     0.00     2.41    13.14    29.39    47.68   \n",
       "\n",
       "   RHC6649  RHC6650  RHC6651  RHC6652  RHC6653  \n",
       "1   137.69    42.52    41.95   108.81   265.52  \n",
       "2     0.00     0.00     0.00     0.00     0.00  \n",
       "3    13.15   138.98    24.68   117.45     0.00  \n",
       "4     0.67     0.32     1.27     4.79     0.00  \n",
       "5     0.00    61.45     3.65    10.68     0.00  \n",
       "\n",
       "[5 rows x 768 columns]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print (tpm_df.shape)\n",
    "tpm_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:21.410668Z",
     "start_time": "2020-10-13T13:11:21.025251Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RHH2176    1.00e+06\n",
       "RHH2177    1.00e+06\n",
       "RHH2178    1.00e+06\n",
       "RHH2179    1.00e+06\n",
       "RHH2180    1.00e+06\n",
       "dtype: float64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tpm_df.sum().head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:22.093973Z",
     "start_time": "2020-10-13T13:11:21.413100Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>RHH2176</th>\n",
       "      <th>RHH2177</th>\n",
       "      <th>RHH2178</th>\n",
       "      <th>RHH2179</th>\n",
       "      <th>RHH2180</th>\n",
       "      <th>RHH2181</th>\n",
       "      <th>RHH2182</th>\n",
       "      <th>RHH2183</th>\n",
       "      <th>RHH2184</th>\n",
       "      <th>RHH2185</th>\n",
       "      <th>...</th>\n",
       "      <th>RHC6644</th>\n",
       "      <th>RHC6645</th>\n",
       "      <th>RHC6646</th>\n",
       "      <th>RHC6647</th>\n",
       "      <th>RHC6648</th>\n",
       "      <th>RHC6649</th>\n",
       "      <th>RHC6650</th>\n",
       "      <th>RHC6651</th>\n",
       "      <th>RHC6652</th>\n",
       "      <th>RHC6653</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>gene_id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>ENSG00000000003.10</th>\n",
       "      <td>49.14</td>\n",
       "      <td>48.85</td>\n",
       "      <td>131.23</td>\n",
       "      <td>178.24</td>\n",
       "      <td>23.44</td>\n",
       "      <td>153.69</td>\n",
       "      <td>9.38</td>\n",
       "      <td>96.24</td>\n",
       "      <td>81.05</td>\n",
       "      <td>10.09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.99</td>\n",
       "      <td>76.64</td>\n",
       "      <td>22.62</td>\n",
       "      <td>67.69</td>\n",
       "      <td>28.06</td>\n",
       "      <td>137.69</td>\n",
       "      <td>42.52</td>\n",
       "      <td>41.95</td>\n",
       "      <td>108.81</td>\n",
       "      <td>265.52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000000005.5</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000000419.8</th>\n",
       "      <td>0.00</td>\n",
       "      <td>25.66</td>\n",
       "      <td>123.04</td>\n",
       "      <td>159.22</td>\n",
       "      <td>110.39</td>\n",
       "      <td>115.40</td>\n",
       "      <td>51.75</td>\n",
       "      <td>47.94</td>\n",
       "      <td>25.92</td>\n",
       "      <td>12.69</td>\n",
       "      <td>...</td>\n",
       "      <td>0.73</td>\n",
       "      <td>76.17</td>\n",
       "      <td>83.42</td>\n",
       "      <td>90.52</td>\n",
       "      <td>164.33</td>\n",
       "      <td>13.15</td>\n",
       "      <td>138.98</td>\n",
       "      <td>24.68</td>\n",
       "      <td>117.45</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000000457.9</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>26.77</td>\n",
       "      <td>4.13</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>4.57</td>\n",
       "      <td>0.67</td>\n",
       "      <td>0.32</td>\n",
       "      <td>1.27</td>\n",
       "      <td>4.79</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000000460.12</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>29.61</td>\n",
       "      <td>2.47</td>\n",
       "      <td>0.00</td>\n",
       "      <td>24.26</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>2.41</td>\n",
       "      <td>13.14</td>\n",
       "      <td>29.39</td>\n",
       "      <td>47.68</td>\n",
       "      <td>0.00</td>\n",
       "      <td>61.45</td>\n",
       "      <td>3.65</td>\n",
       "      <td>10.68</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 768 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                    RHH2176  RHH2177  RHH2178  RHH2179  RHH2180  RHH2181  \\\n",
       "gene_id                                                                    \n",
       "ENSG00000000003.10    49.14    48.85   131.23   178.24    23.44   153.69   \n",
       "ENSG00000000005.5      0.00     0.00     0.00     0.00     0.00     0.00   \n",
       "ENSG00000000419.8      0.00    25.66   123.04   159.22   110.39   115.40   \n",
       "ENSG00000000457.9      0.00     0.00    26.77     4.13     0.00     0.00   \n",
       "ENSG00000000460.12     0.00     0.00     0.00    29.61     2.47     0.00   \n",
       "\n",
       "                    RHH2182  RHH2183  RHH2184  RHH2185  ...  RHC6644  RHC6645  \\\n",
       "gene_id                                                 ...                     \n",
       "ENSG00000000003.10     9.38    96.24    81.05    10.09  ...     0.99    76.64   \n",
       "ENSG00000000005.5      0.00     0.00     0.00     0.00  ...     0.00     0.00   \n",
       "ENSG00000000419.8     51.75    47.94    25.92    12.69  ...     0.73    76.17   \n",
       "ENSG00000000457.9      0.00     0.00     0.00     0.00  ...     0.00     0.00   \n",
       "ENSG00000000460.12    24.26     0.00     0.00     0.00  ...     0.00     2.41   \n",
       "\n",
       "                    RHC6646  RHC6647  RHC6648  RHC6649  RHC6650  RHC6651  \\\n",
       "gene_id                                                                    \n",
       "ENSG00000000003.10    22.62    67.69    28.06   137.69    42.52    41.95   \n",
       "ENSG00000000005.5      0.00     0.00     0.00     0.00     0.00     0.00   \n",
       "ENSG00000000419.8     83.42    90.52   164.33    13.15   138.98    24.68   \n",
       "ENSG00000000457.9      0.00     0.00     4.57     0.67     0.32     1.27   \n",
       "ENSG00000000460.12    13.14    29.39    47.68     0.00    61.45     3.65   \n",
       "\n",
       "                    RHC6652  RHC6653  \n",
       "gene_id                               \n",
       "ENSG00000000003.10   108.81   265.52  \n",
       "ENSG00000000005.5      0.00     0.00  \n",
       "ENSG00000000419.8    117.45     0.00  \n",
       "ENSG00000000457.9      4.79     0.00  \n",
       "ENSG00000000460.12    10.68     0.00  \n",
       "\n",
       "[5 rows x 768 columns]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gene_df = pd.merge(sample_output_df1[['gene_type', 'gene_name']], sample_output_df2[['transcript_id(s)', 'length', 'effective_length']], left_index=True, right_index=True, how='right')\n",
    "\n",
    "gene_id_name_dict = dict(zip(gene_df.index, gene_df['gene_name']))\n",
    "gene_df.to_csv('../data/HN_patient_specific/gene.csv')\n",
    "\n",
    "tpm_gene_list = gene_df.index\n",
    "tpm_df.index = tpm_gene_list\n",
    "tpm_df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### additional tpm files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:22.107149Z",
     "start_time": "2020-10-13T13:11:22.095734Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "479"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "missing_tmp_cell_list = [c for c in cell_list if c not in tpm_df.columns]\n",
    "len(missing_tmp_cell_list) # all are RHO"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Converting FPKM to TPM for MUX5757files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:22.116107Z",
     "start_time": "2020-10-13T13:11:22.110946Z"
    },
    "code_folding": [
     0
    ]
   },
   "outputs": [],
   "source": [
    "##### Check for converting FPKM to TPM\n",
    "\n",
    "# temp_tpm_df = pd.read_csv('../data/HN_patient_specific/star_rsem_output/MUX5761files/MUX5761-TPMmatrix.tsv', index_col=0, sep='\\t')\n",
    "# temp_fpkm_df = pd.read_csv('../data/HN_patient_specific/star_rsem_output/MUX5761files/MUX5761-FPKMmatrix.tsv', index_col=0, sep='\\t')\n",
    "\n",
    "# x = temp_tpm_df.values.flatten()\n",
    "# y = ((temp_fpkm_df / temp_fpkm_df.sum()) * 1000000).values.flatten()\n",
    "# plt.scatter(x, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:30.354068Z",
     "start_time": "2020-10-13T13:11:22.119861Z"
    }
   },
   "outputs": [],
   "source": [
    "temp_fpkm_df = pd.read_csv('../data/HN_patient_specific/star_rsem_output/MUX5757files/MUX5757-FPKMmatrix.tsv', index_col=0, sep='\\t')\n",
    "temp_tpm_df = (temp_fpkm_df / temp_fpkm_df.sum()) * 1000000\n",
    "temp_tpm_df.to_csv('../data/HN_patient_specific/star_rsem_output/MUX5757files/MUX5757-TPMmatrix.tsv', sep='\\t')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Read additional files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:34.048654Z",
     "start_time": "2020-10-13T13:11:30.356743Z"
    }
   },
   "outputs": [],
   "source": [
    "mux_list = ['MUX5757', 'MUX5758', 'MUX5759', 'MUX5760', 'MUX5761']\n",
    "\n",
    "tpm_df_list = []\n",
    "for mux in mux_list:\n",
    "    df = pd.read_csv('../data/HN_patient_specific/star_rsem_output/{}files/{}-TPMmatrix.tsv'.format(mux, mux), index_col=0, sep='\\t')\n",
    "    tpm_df_list += [df]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:34.177705Z",
     "start_time": "2020-10-13T13:11:34.050394Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(57268, 479)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp_df2 = pd.concat(tpm_df_list, axis=1)\n",
    "temp_df2.index = tpm_gene_list\n",
    "\n",
    "temp_df2.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:34.611608Z",
     "start_time": "2020-10-13T13:11:34.179560Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>RHH2176</th>\n",
       "      <th>RHH2177</th>\n",
       "      <th>RHH2178</th>\n",
       "      <th>RHH2179</th>\n",
       "      <th>RHH2180</th>\n",
       "      <th>RHH2181</th>\n",
       "      <th>RHH2182</th>\n",
       "      <th>RHH2183</th>\n",
       "      <th>RHH2184</th>\n",
       "      <th>RHH2185</th>\n",
       "      <th>...</th>\n",
       "      <th>RHO708</th>\n",
       "      <th>RHO709</th>\n",
       "      <th>RHO710</th>\n",
       "      <th>RHO711</th>\n",
       "      <th>RHO712</th>\n",
       "      <th>RHO713</th>\n",
       "      <th>RHO714</th>\n",
       "      <th>RHO715</th>\n",
       "      <th>RHO716</th>\n",
       "      <th>RHO717</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>gene_id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>ENSG00000000003.10</th>\n",
       "      <td>49.14</td>\n",
       "      <td>48.85</td>\n",
       "      <td>131.23</td>\n",
       "      <td>178.24</td>\n",
       "      <td>23.44</td>\n",
       "      <td>153.69</td>\n",
       "      <td>9.38</td>\n",
       "      <td>96.24</td>\n",
       "      <td>81.05</td>\n",
       "      <td>10.09</td>\n",
       "      <td>...</td>\n",
       "      <td>127.02</td>\n",
       "      <td>121.74</td>\n",
       "      <td>0.0</td>\n",
       "      <td>101.40</td>\n",
       "      <td>27.24</td>\n",
       "      <td>72.80</td>\n",
       "      <td>121.54</td>\n",
       "      <td>131.68</td>\n",
       "      <td>18.73</td>\n",
       "      <td>45.72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000000005.5</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000000419.8</th>\n",
       "      <td>0.00</td>\n",
       "      <td>25.66</td>\n",
       "      <td>123.04</td>\n",
       "      <td>159.22</td>\n",
       "      <td>110.39</td>\n",
       "      <td>115.40</td>\n",
       "      <td>51.75</td>\n",
       "      <td>47.94</td>\n",
       "      <td>25.92</td>\n",
       "      <td>12.69</td>\n",
       "      <td>...</td>\n",
       "      <td>316.68</td>\n",
       "      <td>24.94</td>\n",
       "      <td>0.0</td>\n",
       "      <td>41.63</td>\n",
       "      <td>28.49</td>\n",
       "      <td>247.13</td>\n",
       "      <td>326.69</td>\n",
       "      <td>151.61</td>\n",
       "      <td>27.20</td>\n",
       "      <td>36.17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000000457.9</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>26.77</td>\n",
       "      <td>4.13</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>3.62</td>\n",
       "      <td>1.41</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5.64</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.39</td>\n",
       "      <td>0.00</td>\n",
       "      <td>5.66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000000460.12</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>29.61</td>\n",
       "      <td>2.47</td>\n",
       "      <td>0.00</td>\n",
       "      <td>24.26</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>2.50</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.49</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.90</td>\n",
       "      <td>1.67</td>\n",
       "      <td>55.43</td>\n",
       "      <td>7.31</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 1247 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                    RHH2176  RHH2177  RHH2178  RHH2179  RHH2180  RHH2181  \\\n",
       "gene_id                                                                    \n",
       "ENSG00000000003.10    49.14    48.85   131.23   178.24    23.44   153.69   \n",
       "ENSG00000000005.5      0.00     0.00     0.00     0.00     0.00     0.00   \n",
       "ENSG00000000419.8      0.00    25.66   123.04   159.22   110.39   115.40   \n",
       "ENSG00000000457.9      0.00     0.00    26.77     4.13     0.00     0.00   \n",
       "ENSG00000000460.12     0.00     0.00     0.00    29.61     2.47     0.00   \n",
       "\n",
       "                    RHH2182  RHH2183  RHH2184  RHH2185  ...  RHO708  RHO709  \\\n",
       "gene_id                                                 ...                   \n",
       "ENSG00000000003.10     9.38    96.24    81.05    10.09  ...  127.02  121.74   \n",
       "ENSG00000000005.5      0.00     0.00     0.00     0.00  ...    0.00    0.00   \n",
       "ENSG00000000419.8     51.75    47.94    25.92    12.69  ...  316.68   24.94   \n",
       "ENSG00000000457.9      0.00     0.00     0.00     0.00  ...    3.62    1.41   \n",
       "ENSG00000000460.12    24.26     0.00     0.00     0.00  ...    2.50    0.00   \n",
       "\n",
       "                    RHO710  RHO711  RHO712  RHO713  RHO714  RHO715  RHO716  \\\n",
       "gene_id                                                                      \n",
       "ENSG00000000003.10     0.0  101.40   27.24   72.80  121.54  131.68   18.73   \n",
       "ENSG00000000005.5      0.0    0.00    0.00    0.00    0.00    0.00    0.00   \n",
       "ENSG00000000419.8      0.0   41.63   28.49  247.13  326.69  151.61   27.20   \n",
       "ENSG00000000457.9      0.0    5.64    0.00    0.00    0.00    0.39    0.00   \n",
       "ENSG00000000460.12     0.0    0.49    0.00    0.90    1.67   55.43    7.31   \n",
       "\n",
       "                    RHO717  \n",
       "gene_id                     \n",
       "ENSG00000000003.10   45.72  \n",
       "ENSG00000000005.5     0.00  \n",
       "ENSG00000000419.8    36.17  \n",
       "ENSG00000000457.9     5.66  \n",
       "ENSG00000000460.12    0.00  \n",
       "\n",
       "[5 rows x 1247 columns]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tpm_df = pd.concat([tpm_df, temp_df2], axis=1)\n",
    "tpm_df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "No duplicates gene"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:34.627072Z",
     "start_time": "2020-10-13T13:11:34.613594Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((57268,), 57268)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tpm_df.index.shape, len(set(tpm_df.index))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Drop genes with zero count"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:11:35.850791Z",
     "start_time": "2020-10-13T13:11:34.629340Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((34923, 1247), [])"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "non_zero_gene_list = tpm_df.index[tpm_df.sum(axis=1) > 0]\n",
    "tpm_df = tpm_df.loc[non_zero_gene_list]\n",
    "\n",
    "tpm_df.shape, [c for c in cell_list if c not in tpm_df.columns]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Plot number of genes per cells"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:12:34.433473Z",
     "start_time": "2020-10-13T13:12:33.454462Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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eustVq9ezZ07d1Cr1VhZWfHaa6+xa9cuiouLWbFiBXFxcaxbt0677UVDpsckJyezceNGACZNmsTMmTMNcq9w91tsMzMz+vbti4WFhfb137p1a0pLSykvL6/xmPp+KDNG3/7Z3LlzmTVrFt999x2//vorFy5cYPbs2UybNo0xY8bopI0qCQkJfPLJJ/z000/a/rK1teXdd9/lxx9/pE2bNmzYsIGffvpJL8mToV4zxv6dNvf3BmP37/0olyxZskTvrdTC2tqaFStW4O7ujkql4t///jeXL1/m448/xtLSkjfeeIOLFy8SHBwMgIuLCytWrMDS0hJbW1vCwsLYu3cv//znP2ndurUxbkEv6tova9asYeXKlfzrX//C19eX4uJiiouLAZrVdL269IuZmRmOjo7V/vz888+0b9+exx57zNi3olN1fb54enry1VdfkZubS9u2bTl37hzLly8nNDSU7t27G/ludKeu/ZKQkMAPP/xAhw4dUCqVHD9+nJUrVzJ58mT69Olj5LvRnaKiIhISEsjKymLbtm0EBQVp3ydatWrVYt93G4tbt24RExPD1atXsbS0xNraGj8/P8zNzdm/fz/btm2jT58+fPLJJ8Ddb/ZNTBr+/WdxcTGLFi3ixIkTxMbGcvDgQfLz8zExMSEoKIioqCg0Gg1Dhgyhe/fu7Nixg+joaLy9ves9+nj58mWmT59OfHw8EyZMwMLCAh8fH6ysrNi7d6/e7rWsrIzKykosLCwIDAykR48ewN0vV6q+sT548CBPP/209rURFRWFq6trvT6UGaNv09LSOH78ONHR0ahUKlq3bq1dSP/VV1/x3XffMXjwYD788ENAd31bWFjIlClTOHXqFFeuXGHXrl3Y2NhgYmKCj48PP/30E46OjoSEhNC7d29WrFjB9evX6dOnD1ZWVvVqs6qwR0JCAjY2NlhYWOj9NWOM32lLem8wRpt1YbTEydvbG1tbW1atWqXdaHL58uV4eXkBsGnTJpRKJSNHjgQ8UaNMAAAgAElEQVTA3d2djh07sn79etasWUN2djYff/yx9k2vuahrv7z++uvcvn2bvXv38tVXX2n/mJmZ0a9fP2Pdhs7VtV/+ateuXbi4uOh1wa8x1LVfbG1t6dOnDzt27ODzzz/n4sWLPPPMM8yePbvZVNWDuvdL//79uXXrFl999ZX226unn36a5557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\n",
      "text/plain": [
       "<Figure size 864x360 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# count number of expressed genes\n",
    "temp_df = pd.DataFrame((tpm_df > 0).sum(), columns=['count'])\n",
    "temp_df = pd.merge(temp_df, cell_info_df[['cell_line_id', 'batch']], left_index=True, right_index=True)\n",
    "temp_df\n",
    "\n",
    "sns.set(font_scale=1.25)\n",
    "sns.set_style(\"ticks\")\n",
    "fig, axes = plt.subplots(ncols=2, figsize=(12, 5))\n",
    "\n",
    "# sns.stripplot(data=temp_df, x='batch', y='count', jitter=0.2, alpha=0.7, ax=axes[0])\n",
    "# sns.boxplot(data=temp_df, x='batch', y='count', fliersize=0, color='white', ax=axes[0])\n",
    "# axes[0].axhline(y=5000, color='grey')\n",
    "# # axes[0].set(yscale=\"log\")\n",
    "\n",
    "sns.stripplot(data=temp_df, x='cell_line_id', y='count', jitter=0.2, alpha=0.5, ax=axes[1], size=3, color='black')\n",
    "sns.boxplot(data=temp_df, x='cell_line_id', y='count', fliersize=0, color='white', ax=axes[1])\n",
    "# axes[1].set(yscale=\"log\")\n",
    "# axes[1].axhline(y=5000, color='grey')\n",
    "axes[1].set_xticklabels(axes[1].get_xticklabels(), rotation=45, ha='right')\n",
    "axes[1].set_ylabel('Number of genes')\n",
    "axes[1].set_xlabel('Cell line ID')\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.savefig('../figure/supplementary_number_genes_per_cell.svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:12:34.449720Z",
     "start_time": "2020-10-13T13:12:34.437746Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>cell_line_id</th>\n",
       "      <th>batch</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>RHH2555</th>\n",
       "      <td>9377</td>\n",
       "      <td>HN148P</td>\n",
       "      <td>RHH</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RHH2484</th>\n",
       "      <td>9386</td>\n",
       "      <td>HN148P</td>\n",
       "      <td>RHH</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RHC6602</th>\n",
       "      <td>9561</td>\n",
       "      <td>HN148M</td>\n",
       "      <td>RHC</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RHH2539</th>\n",
       "      <td>9600</td>\n",
       "      <td>HN148P</td>\n",
       "      <td>RHH</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RHH2226</th>\n",
       "      <td>14558</td>\n",
       "      <td>HN120P</td>\n",
       "      <td>RHH</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         count cell_line_id batch\n",
       "RHH2555   9377       HN148P   RHH\n",
       "RHH2484   9386       HN148P   RHH\n",
       "RHC6602   9561       HN148M   RHC\n",
       "RHH2539   9600       HN148P   RHH\n",
       "RHH2226  14558       HN120P   RHH"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp_df.sort_values('count').tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:12:34.693487Z",
     "start_time": "2020-10-13T13:12:34.680354Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>1247.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>6626.96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>2173.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>38.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>6218.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>7297.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>8043.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>14558.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          count\n",
       "count   1247.00\n",
       "mean    6626.96\n",
       "std     2173.22\n",
       "min       38.00\n",
       "25%     6218.50\n",
       "50%     7297.00\n",
       "75%     8043.00\n",
       "max    14558.00"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp_df.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Plot library size per cells"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-13T13:12:38.722036Z",
     "start_time": "2020-10-13T13:12:36.354056Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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9jmZTIbb7SYgIOCS7PFYRERE8Nhjj3Hw4EHUajVlZWW0t7cPygh7e3vzwx/+EJPJNC5/zxqNhieffBKLxUJwcPCYr/d1RNAkCIIg3PDKyspYs2YN0F8Q/8knn/DMM8/wve99j1dffZX3339/VEHTggULLruweO+991izZg133nknAD//+c/Zv38/n3/+OY888gihoaFkZWVJd69nzZpFRUXFJUHT+++/zx//+MdhxxluGxXA7t27cTqd6PV6MjIyOHnyJJ6enqjVagoKCnjzzTfRaDQUFBRQXV1NUFAQU6dO5fz584OucyXnFvn7+5OamkpZWRnQX3c04OOPP6agoIDW1lbmz5/PE088MeZagsceewx/f38+//xzdDodZ8+eBfqzXxMmTCAuLo4jR45gtVqx2WyEh4ezadMmfvjDH15xd7fg4GBeeukl3nnnHZRKJc3Nzezdu5e2tjbkcrlUYySXyzEYDCiVSlQqFVOnTh3xGEP9fJubmzl48CAKhQK3280XX3zBvn37CA4OJjo6moyMDDQaDcePH2fHjh3IZDKio6Olry/e0jSan++f//xnfve73+Fyueju7sbtduN0OqVulG63WzpE2eFw8NRTT425tqiqqopz587R3t6O3W7HbrdjMBhISkrCz88Pu93Oww8/TFBQECaTCavVSkpKCrt37+bRRx+94nGNRiMbN26kr6+PtWvXSot0b29vnnvuOfLy8khPT6ezsxPob1gxXtvk7HY777//Pn19ffj6+qJWq5HL5VL2TK/Xs3//fkwmE2+99RZLliwZl0zuQFYL4L777sPf3/+S18TFxaHVavH39x/3BhSZmZnExcXx7LPPotPpUCgUl9RLeXt7j+txCWq1eti6qJaWFr744gsCAwO56667xtwJUgRNgiAIwg2vq6tLWgCUlJRgMpmkLWw5OTm899574zaWzWajtLSUJ554QnpMLpcze/ZsCgsLgf5tTu3t7VgsFimIWbZs2SXXWrduHatXrx70WGtrq7T3frhtVABpaWl0d3eTkpIiNSnw8/MjMDCQyspKLBYLer2eqqoqrFarVIdzoStpUHH8+HFyc3OJiYlh7ty5OBwOKWjatGkTH330ESaTCU9PTzo7OzEajaMKmvR6/SWZis7OTsxmM9nZ2RQVFdHU1ERfXx82m42goCA2b95MT08PCoWCkJAQgoKC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/P39OXHiBACLFi1i0aJFAGzZsoULFy7UmDABTJ8+/Y6FeasG+gcHB9O2bds6xbdt2zYAxowZU6fPNZSxyjUWfV5veXk5e/bsoaioiOHDh2NjY2OQcsX/MUY9azQaFAoFt27d4uWXXzboDH23X295eTn5+fk4OjrWeRHwmupt+/bt5OXlcf36debPn39H18Djx4/j7u7OwIEDad26Ne7u7nU6f3389TwnT57U7pswYcI9181KS0vjP//5T437JGkSQggh/r+8vDzKy8txdXWttt3FxYVLly7V+XwODg44ODiwatUqaXESAJw5c4YjR44AYGtry7Bhw4wckTAEMzMzevToAWC0Kc01Gg1ffPEFly9fplevXowdO7bB5+zfvz9ZWVnY29vz0EMPVduXnp7OP/7xD9LT09myZQvr169vcHn10bNnz2qzCtZX024XFUII0WScO3eOhQsXMnToUHr06KEd1Pzvf/+bgwcPGiWmCRMm1GqNprCwMO00v3v37jVAZKKxcnFx0S6c2hhmghTNR2lpKZcvXwYqZ7nTBRcXF4YOHYqTk9Md44HMzMy4evUq165d4+zZs4SHh5OZmamTcuvK29u7QQkTSNIkhBDCBBw8eJCgoCCys7MZN26cdgA5gIWFBV999ZVOynFyckKpVJKdnV1te05ODm5ubvU+76pVq7RT7VZNzSuap9atWzN//nzmzp1bq3W+bt26dc/B6ULcrqKi4q77VCoVw4cPp3Xr1jpr4SwvL2f9+vX8/PPPfPvtt9oYvv/+e7Zv346npyeWlpa4urqiUCj08rt89uxZli9fzqZNm+55/Q0l3fOEEEI0eh999BHjx49n2bJllJWVVevq5uXlxYYNG3RSjkqlwtvbm9jYWAIDA4HKF4AjR44wffr0ep83LCyMsLAwoLLPvCROzVtNUy5rNBpu3LhRbYxTQUEBq1ev5saNG4wcOZK+ffsaMkxhYrZv385vv/1G7969GT16dI3H+Pv74+/vX+8ycnJytGOGoPL5mJSURHFxsXbfxYsX2bx5M0qlkrKyMnx9fblx4wZKpZKEhIQaZ0usOnd9piPfv38/v/76K6dPn2bQoEH1vrb7kaRJCCFEo3fhwgVeeuklgDsGL9vZ2XH9+vVan6ugoIDU1FTt39PS0jh79iyurq64ubkxY8YMXnrpJby9vfH19SUyMpLi4uI7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\n",
      "text/plain": [
       "<Figure size 864x360 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# calculate library size per cell\n",
    "temp_df = pd.DataFrame(count_df.sum(), columns=['lib_size'])\n",
    "temp_df = pd.merge(temp_df, cell_info_df[['cell_line_id', 'batch']], left_index=True, right_index=True)\n",
    "temp_df\n",
    "\n",
    "sns.set(font_scale=1.25)\n",
    "sns.set_style(\"ticks\")\n",
    "fig, axes = plt.subplots(ncols=2, figsize=(12, 5))\n",
    "\n",
    "# sns.stripplot(data=temp_df, x='batch', y='lib_size', jitter=0.2, alpha=0.7, ax=axes[0])\n",
    "# sns.boxplot(data=temp_df, x='batch', y='lib_size', fliersize=0, color='white', ax=axes[0])\n",
    "# axes[0].axhline(y=10000, color='grey')\n",
    "# axes[0].set(yscale=\"log\")\n",
    "\n",
    "sns.stripplot(data=temp_df, x='cell_line_id', y='lib_size', jitter=0.2, alpha=0.5, ax=axes[1], size=3, color='black')\n",
    "sns.boxplot(data=temp_df, x='cell_line_id', y='lib_size', fliersize=0, color='white', ax=axes[1])\n",
    "axes[1].set(yscale=\"log\")\n",
    "axes[1].axhline(y=10000, color='grey')\n",
    "axes[1].set_xticklabels(axes[1].get_xticklabels(), rotation=45, ha='right')\n",
    "axes[1].set_ylabel('library size (total reads)')\n",
    "axes[1].set_xlabel('Cell line ID')\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.savefig('../figure/supplementary_number_reads_per_cell.svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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rKwsrly5Yi51tXLlSjIyMli2bBkPPPAA/fv358cff+SLL75g1KhRzJw503zPe++9l3/84x+88MILXL58mYCAAP71r39RXl7e4fdz+PDhpKen8+KLLxIfH49cLmfs2LHmRJ4jR44ADb9bgvYjxE3QLVAoFLz77rskJyfzxRdfcPDgQXx9fZk6dSorVqywmCJ0d3dn27ZtvP766xw6dIgvv/ySYcOG8f7777N69epmGWYqlYr169dbtB04cIADBw4AkJCQYBY3gPXr17Nx40b2799PamoqoaGh/PnPf+aPf/xjM7vnzJlDcnIyn3/+OQ8++KC5/cEHH+TIkSNs376dyspK+vTpw/Dhw1m6dCmxsbHm8+677z6KiorYuXMnr7zyCv369eNPf/oTbm5unDp1qmNvqgMZMmQIKSkpbNq0ibS0NHbt2oW3tzfh4eHMnDmT22+/3Xzu3//+d9auXUtaWhopKSkMHDiQJ554gl69elms7QLo378/O3fu5LXXXmPHjh24u7tzxx138Prrr7c6BWrC3d2d9957j/fee4/PP/+cdevWoVQqGTBggEW9z/DwcPbs2cObb77JZ599RmVlJaGhoSxdupTHHnvMYo2bj48Pmzdv5pVXXmHTpk14eXnxX//1X/z973/vsEe1ePFicnJy+Prrr9m1axdGo5EPPvjALG6pqanExcURFxfXoef0dGRSWyOdAkE3xWAwMHbsWIYNG8a7777bZc994YUX+P777/nqq686tDhbIDh37hwzZ87k7bffZtKkSc4254ZGxNwENyTW1v/s2rULjUbDuHHjutSW5cuXo1aru1WcTHBjsmHDBkaNGiWEzQEIz01wQ/LUU0+h1+uJj4/H3d2dkydP8vnnn9O/f3/27duHj4+Ps00UCARORIib4Ibk008/ZefOnVy9epXq6mr69OnDXXfdxfLlywkKCnK2eQKBwMkIcRMIBAKByyFibgKBQCBwOYS4CQQCgcDlEOImEAgEApdDiJtAIBAIXA4hbgKBQCBwOYS4CQQCgcDl+H8jEPCpMg0L5wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = count_df.sum().values\n",
    "y = (tpm_df > 0).sum().values\n",
    "plt.scatter(np.log10(x), y, s=10, alpha=0.5, color='navy')\n",
    "\n",
    "plt.xlabel('log10(sum read count)')\n",
    "plt.ylabel('number of genes')\n",
    "\n",
    "sns.despine()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Filter cells\n",
    "\n",
    "- Remove the one with > 10000 genes (possible duplet)\n",
    "- Library size >= 10000"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1171"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "selected_cell_list = tpm_df.columns[((tpm_df > 0).sum() < 10000) & (count_df.sum() >= 10000)]\n",
    "len(selected_cell_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "tpm_df = tpm_df[selected_cell_list]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>patient_id</th>\n",
       "      <th>origin</th>\n",
       "      <th>batch</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>cell_line_id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>HN120M</th>\n",
       "      <td>94</td>\n",
       "      <td>94</td>\n",
       "      <td>94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HN120P</th>\n",
       "      <td>94</td>\n",
       "      <td>94</td>\n",
       "      <td>94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HN137M</th>\n",
       "      <td>86</td>\n",
       "      <td>86</td>\n",
       "      <td>86</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HN137P</th>\n",
       "      <td>95</td>\n",
       "      <td>95</td>\n",
       "      <td>95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HN137P2</th>\n",
       "      <td>189</td>\n",
       "      <td>189</td>\n",
       "      <td>189</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HN148M</th>\n",
       "      <td>96</td>\n",
       "      <td>96</td>\n",
       "      <td>96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HN148P</th>\n",
       "      <td>96</td>\n",
       "      <td>96</td>\n",
       "      <td>96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HN159M</th>\n",
       "      <td>83</td>\n",
       "      <td>83</td>\n",
       "      <td>83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HN159P</th>\n",
       "      <td>94</td>\n",
       "      <td>94</td>\n",
       "      <td>94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HN160M</th>\n",
       "      <td>61</td>\n",
       "      <td>61</td>\n",
       "      <td>61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HN160P</th>\n",
       "      <td>90</td>\n",
       "      <td>90</td>\n",
       "      <td>90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HN182M</th>\n",
       "      <td>93</td>\n",
       "      <td>93</td>\n",
       "      <td>93</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              patient_id  origin  batch\n",
       "cell_line_id                           \n",
       "HN120M                94      94     94\n",
       "HN120P                94      94     94\n",
       "HN137M                86      86     86\n",
       "HN137P                95      95     95\n",
       "HN137P2              189     189    189\n",
       "HN148M                96      96     96\n",
       "HN148P                96      96     96\n",
       "HN159M                83      83     83\n",
       "HN159P                94      94     94\n",
       "HN160M                61      61     61\n",
       "HN160P                90      90     90\n",
       "HN182M                93      93     93"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cell_info_df.loc[selected_cell_list].groupby('cell_line_id').count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "cell_info_df.to_csv('../preprocessed_data/HN_patient_specific/cell_info.csv')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Filter genes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "58"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "min_n_cells = int(0.05 * tpm_df.shape[1])\n",
    "min_n_cells"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(34923, 1171)"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tpm_df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "15185"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "selected_gene_list = tpm_df.index[((tpm_df > 0).T.sum() >= min_n_cells)]\n",
    "len(selected_gene_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(15185, 1171)\n"
     ]
    }
   ],
   "source": [
    "tpm_df = tpm_df.loc[selected_gene_list]\n",
    "print (tpm_df.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>RHH2176</th>\n",
       "      <th>RHH2177</th>\n",
       "      <th>RHH2178</th>\n",
       "      <th>RHH2179</th>\n",
       "      <th>RHH2180</th>\n",
       "      <th>RHH2181</th>\n",
       "      <th>RHH2182</th>\n",
       "      <th>RHH2183</th>\n",
       "      <th>RHH2184</th>\n",
       "      <th>RHH2185</th>\n",
       "      <th>...</th>\n",
       "      <th>RHO707</th>\n",
       "      <th>RHO708</th>\n",
       "      <th>RHO709</th>\n",
       "      <th>RHO711</th>\n",
       "      <th>RHO712</th>\n",
       "      <th>RHO713</th>\n",
       "      <th>RHO714</th>\n",
       "      <th>RHO715</th>\n",
       "      <th>RHO716</th>\n",
       "      <th>RHO717</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>gene_id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>ENSG00000000003.10</th>\n",
       "      <td>49.14</td>\n",
       "      <td>48.85</td>\n",
       "      <td>131.23</td>\n",
       "      <td>178.24</td>\n",
       "      <td>23.44</td>\n",
       "      <td>153.69</td>\n",
       "      <td>9.38</td>\n",
       "      <td>96.24</td>\n",
       "      <td>81.05</td>\n",
       "      <td>10.09</td>\n",
       "      <td>...</td>\n",
       "      <td>46.83</td>\n",
       "      <td>127.02</td>\n",
       "      <td>121.74</td>\n",
       "      <td>101.40</td>\n",
       "      <td>27.24</td>\n",
       "      <td>72.80</td>\n",
       "      <td>121.54</td>\n",
       "      <td>131.68</td>\n",
       "      <td>18.73</td>\n",
       "      <td>45.72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000000419.8</th>\n",
       "      <td>0.00</td>\n",
       "      <td>25.66</td>\n",
       "      <td>123.04</td>\n",
       "      <td>159.22</td>\n",
       "      <td>110.39</td>\n",
       "      <td>115.40</td>\n",
       "      <td>51.75</td>\n",
       "      <td>47.94</td>\n",
       "      <td>25.92</td>\n",
       "      <td>12.69</td>\n",
       "      <td>...</td>\n",
       "      <td>95.78</td>\n",
       "      <td>316.68</td>\n",
       "      <td>24.94</td>\n",
       "      <td>41.63</td>\n",
       "      <td>28.49</td>\n",
       "      <td>247.13</td>\n",
       "      <td>326.69</td>\n",
       "      <td>151.61</td>\n",
       "      <td>27.20</td>\n",
       "      <td>36.17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000000457.9</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>26.77</td>\n",
       "      <td>4.13</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>2.41</td>\n",
       "      <td>3.62</td>\n",
       "      <td>1.41</td>\n",
       "      <td>5.64</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.39</td>\n",
       "      <td>0.00</td>\n",
       "      <td>5.66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000000460.12</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>29.61</td>\n",
       "      <td>2.47</td>\n",
       "      <td>0.00</td>\n",
       "      <td>24.26</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>6.01</td>\n",
       "      <td>2.50</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.49</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.90</td>\n",
       "      <td>1.67</td>\n",
       "      <td>55.43</td>\n",
       "      <td>7.31</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000000971.11</th>\n",
       "      <td>0.00</td>\n",
       "      <td>7.30</td>\n",
       "      <td>75.75</td>\n",
       "      <td>0.00</td>\n",
       "      <td>32.28</td>\n",
       "      <td>0.00</td>\n",
       "      <td>4.91</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.32</td>\n",
       "      <td>1.62</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>7.88</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 1171 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                    RHH2176  RHH2177  RHH2178  RHH2179  RHH2180  RHH2181  \\\n",
       "gene_id                                                                    \n",
       "ENSG00000000003.10    49.14    48.85   131.23   178.24    23.44   153.69   \n",
       "ENSG00000000419.8      0.00    25.66   123.04   159.22   110.39   115.40   \n",
       "ENSG00000000457.9      0.00     0.00    26.77     4.13     0.00     0.00   \n",
       "ENSG00000000460.12     0.00     0.00     0.00    29.61     2.47     0.00   \n",
       "ENSG00000000971.11     0.00     7.30    75.75     0.00    32.28     0.00   \n",
       "\n",
       "                    RHH2182  RHH2183  RHH2184  RHH2185  ...  RHO707  RHO708  \\\n",
       "gene_id                                                 ...                   \n",
       "ENSG00000000003.10     9.38    96.24    81.05    10.09  ...   46.83  127.02   \n",
       "ENSG00000000419.8     51.75    47.94    25.92    12.69  ...   95.78  316.68   \n",
       "ENSG00000000457.9      0.00     0.00     0.00     0.00  ...    2.41    3.62   \n",
       "ENSG00000000460.12    24.26     0.00     0.00     0.00  ...    6.01    2.50   \n",
       "ENSG00000000971.11     4.91     0.00     0.00     0.00  ...    0.00    0.00   \n",
       "\n",
       "                    RHO709  RHO711  RHO712  RHO713  RHO714  RHO715  RHO716  \\\n",
       "gene_id                                                                      \n",
       "ENSG00000000003.10  121.74  101.40   27.24   72.80  121.54  131.68   18.73   \n",
       "ENSG00000000419.8    24.94   41.63   28.49  247.13  326.69  151.61   27.20   \n",
       "ENSG00000000457.9     1.41    5.64    0.00    0.00    0.00    0.39    0.00   \n",
       "ENSG00000000460.12    0.00    0.49    0.00    0.90    1.67   55.43    7.31   \n",
       "ENSG00000000971.11    0.00    0.00    0.00    0.32    1.62    0.00    0.00   \n",
       "\n",
       "                    RHO717  \n",
       "gene_id                     \n",
       "ENSG00000000003.10   45.72  \n",
       "ENSG00000000419.8    36.17  \n",
       "ENSG00000000457.9     5.66  \n",
       "ENSG00000000460.12    0.00  \n",
       "ENSG00000000971.11    7.88  \n",
       "\n",
       "[5 rows x 1171 columns]"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tpm_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "tpm_df.to_csv('../data/HN_patient_specific/hn_sc_tpm.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Regenerate the mat_norm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(54999, 1247)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>RHH2176</th>\n",
       "      <th>RHH2177</th>\n",
       "      <th>RHH2178</th>\n",
       "      <th>RHH2179</th>\n",
       "      <th>RHH2180</th>\n",
       "      <th>RHH2181</th>\n",
       "      <th>RHH2182</th>\n",
       "      <th>RHH2183</th>\n",
       "      <th>RHH2184</th>\n",
       "      <th>RHH2185</th>\n",
       "      <th>...</th>\n",
       "      <th>RHO708</th>\n",
       "      <th>RHO709</th>\n",
       "      <th>RHO710</th>\n",
       "      <th>RHO711</th>\n",
       "      <th>RHO712</th>\n",
       "      <th>RHO713</th>\n",
       "      <th>RHO714</th>\n",
       "      <th>RHO715</th>\n",
       "      <th>RHO716</th>\n",
       "      <th>RHO717</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>TSPAN6</th>\n",
       "      <td>2.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>132.0</td>\n",
       "      <td>58.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>115.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>27.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>295.0</td>\n",
       "      <td>116.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>121.0</td>\n",
       "      <td>38.0</td>\n",
       "      <td>116.0</td>\n",
       "      <td>234.0</td>\n",
       "      <td>227.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>71.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TNMD</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DPM1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>341.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>23.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>189.0</td>\n",
       "      <td>291.0</td>\n",
       "      <td>121.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>26.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SCYL3</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>36.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>25.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C1orf112</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>38.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 1247 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          RHH2176  RHH2177  RHH2178  RHH2179  RHH2180  RHH2181  RHH2182  \\\n",
       "                                                                          \n",
       "TSPAN6        2.0      7.0    132.0     58.0     11.0    115.0      2.0   \n",
       "TNMD          0.0      0.0      0.0      0.0      0.0      0.0      0.0   \n",
       "DPM1          0.0      1.0     50.0     24.0     24.0     40.0      3.0   \n",
       "SCYL3         0.0      0.0     36.0      4.0      0.0      0.0      0.0   \n",
       "C1orf112      0.0      0.0      0.0      4.0      2.0      0.0      9.0   \n",
       "\n",
       "          RHH2183  RHH2184  RHH2185  ...  RHO708  RHO709  RHO710  RHO711  \\\n",
       "                                     ...                                   \n",
       "TSPAN6       13.0     27.0      1.0  ...   295.0   116.0     0.0   121.0   \n",
       "TNMD          0.0      0.0      0.0  ...     0.0     0.0     0.0     0.0   \n",
       "DPM1          3.0      4.0      1.0  ...   341.0    11.0     0.0    23.0   \n",
       "SCYL3         0.0      0.0      0.0  ...    25.0     4.0     0.0    20.0   \n",
       "C1orf112      0.0      0.0      0.0  ...    10.0     0.0     0.0     1.0   \n",
       "\n",
       "          RHO712  RHO713  RHO714  RHO715  RHO716  RHO717  \n",
       "                                                          \n",
       "TSPAN6      38.0   116.0   234.0   227.0    17.0    71.0  \n",
       "TNMD         0.0     0.0     0.0     0.0     0.0     0.0  \n",
       "DPM1        16.0   189.0   291.0   121.0    20.0    26.0  \n",
       "SCYL3        0.0     0.0     0.0     2.0     0.0     6.0  \n",
       "C1orf112     0.0     3.0     1.0    38.0     5.0     0.0  \n",
       "\n",
       "[5 rows x 1247 columns]"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "count_df = pd.read_csv('../data/HN_patient_specific/star_rsem_output/HN120-182/countdata.csv', index_col=0)\n",
    "count_df = count_df.set_index('mat57[, 1]')\n",
    "count_df.index.name = ''\n",
    "print (count_df.shape)\n",
    "count_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(26968, 1241)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>RHH2176</th>\n",
       "      <th>RHH2177</th>\n",
       "      <th>RHH2178</th>\n",
       "      <th>RHH2179</th>\n",
       "      <th>RHH2180</th>\n",
       "      <th>RHH2181</th>\n",
       "      <th>RHH2182</th>\n",
       "      <th>RHH2183</th>\n",
       "      <th>RHH2184</th>\n",
       "      <th>RHH2185</th>\n",
       "      <th>...</th>\n",
       "      <th>RHO708</th>\n",
       "      <th>RHO709</th>\n",
       "      <th>RHO710</th>\n",
       "      <th>RHO711</th>\n",
       "      <th>RHO712</th>\n",
       "      <th>RHO713</th>\n",
       "      <th>RHO714</th>\n",
       "      <th>RHO715</th>\n",
       "      <th>RHO716</th>\n",
       "      <th>RHO717</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>TSPAN6</th>\n",
       "      <td>0.71</td>\n",
       "      <td>0.67</td>\n",
       "      <td>1.18</td>\n",
       "      <td>1.38</td>\n",
       "      <td>0.33</td>\n",
       "      <td>1.28</td>\n",
       "      <td>0.17</td>\n",
       "      <td>1.10</td>\n",
       "      <td>0.91</td>\n",
       "      <td>0.06</td>\n",
       "      <td>...</td>\n",
       "      <td>1.45</td>\n",
       "      <td>1.34</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.26</td>\n",
       "      <td>0.52</td>\n",
       "      <td>1.00</td>\n",
       "      <td>1.38</td>\n",
       "      <td>1.41</td>\n",
       "      <td>0.21</td>\n",
       "      <td>0.76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DPM1</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.62</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.62</td>\n",
       "      <td>0.64</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.38</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.06</td>\n",
       "      <td>...</td>\n",
       "      <td>1.56</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.39</td>\n",
       "      <td>0.25</td>\n",
       "      <td>1.33</td>\n",
       "      <td>1.54</td>\n",
       "      <td>0.97</td>\n",
       "      <td>0.25</td>\n",
       "      <td>0.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SCYL3</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.48</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.35</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C1orf112</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.59</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.42</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FGR</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 1241 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          RHH2176  RHH2177  RHH2178  RHH2179  RHH2180  RHH2181  RHH2182  \\\n",
       "TSPAN6       0.71     0.67     1.18     1.38     0.33     1.28     0.17   \n",
       "DPM1         0.00     0.13     0.62     0.80     0.62     0.64     0.24   \n",
       "SCYL3        0.00     0.00     0.48     0.19     0.00     0.00     0.00   \n",
       "C1orf112     0.00     0.00     0.00     0.19     0.07     0.00     0.59   \n",
       "FGR          0.00     0.00     0.00     0.00     0.00     0.00     0.00   \n",
       "\n",
       "          RHH2183  RHH2184  RHH2185  ...  RHO708  RHO709  RHO710  RHO711  \\\n",
       "TSPAN6       1.10     0.91     0.06  ...    1.45    1.34     0.0    1.26   \n",
       "DPM1         0.38     0.20     0.06  ...    1.56    0.24     0.0    0.39   \n",
       "SCYL3        0.00     0.00     0.00  ...    0.24    0.09     0.0    0.35   \n",
       "C1orf112     0.00     0.00     0.00  ...    0.10    0.00     0.0    0.02   \n",
       "FGR          0.00     0.00     0.00  ...    0.00    0.00     0.0    0.00   \n",
       "\n",
       "          RHO712  RHO713  RHO714  RHO715  RHO716  RHO717  \n",
       "TSPAN6      0.52    1.00    1.38    1.41    0.21    0.76  \n",
       "DPM1        0.25    1.33    1.54    0.97    0.25    0.35  \n",
       "SCYL3       0.00    0.00    0.00    0.03    0.00    0.09  \n",
       "C1orf112    0.00    0.04    0.01    0.42    0.07    0.00  \n",
       "FGR         0.00    0.00    0.00    0.00    0.00    0.00  \n",
       "\n",
       "[5 rows x 1241 columns]"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "old_mat_norm_df = pd.read_csv('../data/HN_patient_specific/old_norm_cluster_results/mat_norm.csv', index_col=0)\n",
    "print (old_mat_norm_df.shape)\n",
    "old_mat_norm_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>factor</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>RHH2176</th>\n",
       "      <td>1.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RHH2177</th>\n",
       "      <td>7.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RHH2178</th>\n",
       "      <td>58.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RHH2179</th>\n",
       "      <td>19.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RHH2180</th>\n",
       "      <td>27.75</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         factor\n",
       "RHH2176    1.95\n",
       "RHH2177    7.38\n",
       "RHH2178   58.35\n",
       "RHH2179   19.53\n",
       "RHH2180   27.75"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor_df = pd.DataFrame(count_df.sum() / 10000, columns=['factor'])\n",
    "factor_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x19046a76dd8>"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.distplot(factor_df['factor'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>RHH2176</th>\n",
       "      <th>RHH2177</th>\n",
       "      <th>RHH2178</th>\n",
       "      <th>RHH2179</th>\n",
       "      <th>RHH2180</th>\n",
       "      <th>RHH2181</th>\n",
       "      <th>RHH2182</th>\n",
       "      <th>RHH2183</th>\n",
       "      <th>RHH2184</th>\n",
       "      <th>RHH2185</th>\n",
       "      <th>...</th>\n",
       "      <th>RHO708</th>\n",
       "      <th>RHO709</th>\n",
       "      <th>RHO710</th>\n",
       "      <th>RHO711</th>\n",
       "      <th>RHO712</th>\n",
       "      <th>RHO713</th>\n",
       "      <th>RHO714</th>\n",
       "      <th>RHO715</th>\n",
       "      <th>RHO716</th>\n",
       "      <th>RHO717</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>TSPAN6</th>\n",
       "      <td>0.71</td>\n",
       "      <td>0.67</td>\n",
       "      <td>1.18</td>\n",
       "      <td>1.38</td>\n",
       "      <td>0.33</td>\n",
       "      <td>1.28</td>\n",
       "      <td>0.17</td>\n",
       "      <td>1.10</td>\n",
       "      <td>0.91</td>\n",
       "      <td>0.06</td>\n",
       "      <td>...</td>\n",
       "      <td>1.45</td>\n",
       "      <td>1.34</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.26</td>\n",
       "      <td>0.52</td>\n",
       "      <td>1.00</td>\n",
       "      <td>1.38</td>\n",
       "      <td>1.41</td>\n",
       "      <td>0.21</td>\n",
       "      <td>0.76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TNMD</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DPM1</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.13</td>\n",
       "      <td>0.62</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.62</td>\n",
       "      <td>0.64</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.38</td>\n",
       "      <td>0.20</td>\n",
       "      <td>0.06</td>\n",
       "      <td>...</td>\n",
       "      <td>1.56</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.39</td>\n",
       "      <td>0.25</td>\n",
       "      <td>1.33</td>\n",
       "      <td>1.55</td>\n",
       "      <td>0.97</td>\n",
       "      <td>0.25</td>\n",
       "      <td>0.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SCYL3</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.48</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.24</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.35</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C1orf112</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.19</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.60</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.10</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.02</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.04</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.42</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 1247 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          RHH2176  RHH2177  RHH2178  RHH2179  RHH2180  RHH2181  RHH2182  \\\n",
       "                                                                          \n",
       "TSPAN6       0.71     0.67     1.18     1.38     0.33     1.28     0.17   \n",
       "TNMD         0.00     0.00     0.00     0.00     0.00     0.00     0.00   \n",
       "DPM1         0.00     0.13     0.62     0.80     0.62     0.64     0.24   \n",
       "SCYL3        0.00     0.00     0.48     0.19     0.00     0.00     0.00   \n",
       "C1orf112     0.00     0.00     0.00     0.19     0.07     0.00     0.60   \n",
       "\n",
       "          RHH2183  RHH2184  RHH2185  ...  RHO708  RHO709  RHO710  RHO711  \\\n",
       "                                     ...                                   \n",
       "TSPAN6       1.10     0.91     0.06  ...    1.45    1.34     0.0    1.26   \n",
       "TNMD         0.00     0.00     0.00  ...    0.00    0.00     0.0    0.00   \n",
       "DPM1         0.38     0.20     0.06  ...    1.56    0.24     0.0    0.39   \n",
       "SCYL3        0.00     0.00     0.00  ...    0.24    0.09     0.0    0.35   \n",
       "C1orf112     0.00     0.00     0.00  ...    0.10    0.00     0.0    0.02   \n",
       "\n",
       "          RHO712  RHO713  RHO714  RHO715  RHO716  RHO717  \n",
       "                                                          \n",
       "TSPAN6      0.52    1.00    1.38    1.41    0.21    0.76  \n",
       "TNMD        0.00    0.00    0.00    0.00    0.00    0.00  \n",
       "DPM1        0.25    1.33    1.55    0.97    0.25    0.35  \n",
       "SCYL3       0.00    0.00    0.00    0.03    0.00    0.09  \n",
       "C1orf112    0.00    0.04    0.01    0.42    0.07    0.00  \n",
       "\n",
       "[5 rows x 1247 columns]"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_mat_norm_df = np.log((count_df / factor_df['factor']) + 1)\n",
    "new_mat_norm_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [],
   "source": [
    "new_mat_norm_sum_df = new_mat_norm_df.reset_index().groupby('').sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "14882"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "selected_gene_name_list = new_mat_norm_sum_df.index[((new_mat_norm_sum_df > 0).T.sum() >= min_n_cells)]\n",
    "len(selected_gene_name_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(14882, 1171)"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_mat_norm_sum_df = new_mat_norm_sum_df.loc[selected_gene_name_list, selected_cell_list]\n",
    "new_mat_norm_sum_df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [],
   "source": [
    "new_mat_norm_sum_df.to_csv('../data/HN_patient_specific/hn_mat_norm.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": false,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
